//
//  CR2SuscFracDistr.java
//
// @author Michael Liljenstam, ISTS, Dartmouth College
//
//  $Id: CR2SuscFracDistr.java,v 1.3 2003/03/01 21:05:01 mili Exp $

package SSF.App.Worm;

import com.renesys.raceway.SSF.*;
import cern.jet.random.*;
//import java.util.*;

/**
 *  Distribution of fraction of an ASs announced IP space populated by hosts 
 *  that were susceptible to the Code Red II worm in Sept 2001.
 *  Empirical distribution based on data from CAIDA site [David Moore].
 *  
 *  
 *  
 *  <p>
 *  See main() method for usage example.
 *  </p>
 *  @author Michael Liljenstam, ISTS, Dartmouth College
 */
public class CR2SuscFracDistr {
  static final int   numVals = 3725;

  static final double[] samples={1.2187353751754979e-07, 2.0323881373569200e-07, 2.9578014023291383e-07, 3.4660603371783497e-07, 3.6544578538684629e-07, 4.1560904061284047e-07, 4.2156809842434706e-07, 5.3147865392755643e-07, 9.6284200147892526e-07, 1.0083247289623129e-06, 1.3350136705399864e-06, 1.5690507870358748e-06, 1.8925629844961240e-06, 2.0373348400556328e-06, 2.0657059756742464e-06, 2.1126284478096270e-06, 2.4684044233807265e-06, 2.9750571210967251e-06, 3.0469968798751951e-06, 3.1391322502875690e-06, 3.7380382775119618e-06, 3.7668756027000966e-06, 3.7741545893719806e-06, 4.1282585720995772e-06, 4.1423647932131499e-06, 4.4171692423671319e-06, 4.6337485172004748e-06, 4.7569514917799876e-06, 5.0208868894601539e-06, 5.0599093264248707e-06, 5.0796488946684006e-06, 5.0862630208333331e-06, 5.1263123359580052e-06, 5.2930216802168022e-06, 5.5803571428571429e-06, 5.9365501519756839e-06, 6.0750388802488336e-06, 6.0896754535147395e-06, 6.2294428386325123e-06, 6.4247532894736839e-06, 6.5140355753196217e-06, 6.7146540610227763e-06, 6.9754464285714284e-06, 7.1806066176470587e-06, 7.1814316902217625e-06, 7.2071033210332101e-06, 7.2204251386321626e-06, 7.3982007575757578e-06, 7.4976007677543183e-06, 7.5261780104712041e-06, 7.5556092843326886e-06, 7.5702519379844960e-06, 7.6046398442569764e-06, 7.6071080817916264e-06, 7.6145224171539957e-06, 7.6293945312500000e-06, 7.6970443349753689e-06, 7.8125000000000002e-06, 7.9929114294066063e-06, 8.4918478260869566e-06, 8.6998886414253894e-06, 8.8376696832579193e-06, 8.8443396226415098e-06, 8.8879408418657561e-06, 8.9021194165907013e-06, 9.0005760368663594e-06, 9.2128537735849053e-06, 9.3005952380952389e-06, 9.3339307048984463e-06, 9.4429895245769545e-06, 9.6916473368958833e-06, 1.0172526041666666e-05, 1.0388962765957447e-05, 1.0722937888609605e-05, 1.0941876750700280e-05, 1.1053338992642897e-05, 1.1081560283687944e-05, 1.1322463768115942e-05, 1.1444091796875000e-05, 1.1695359281437126e-05, 1.1904761904761905e-05, 1.2019230769230769e-05, 1.2037750385208013e-05, 1.2146643109540636e-05, 1.2207031250000001e-05, 1.2335144422773289e-05, 1.2520032051282051e-05, 1.2600806451612903e-05, 1.2849506578947368e-05, 1.2977574750830565e-05, 1.3086264656616416e-05, 1.3286564625850340e-05, 1.3563368055555555e-05, 1.3658216783216783e-05, 1.3899699766485044e-05, 1.4051258992805756e-05, 1.4308608058608059e-05, 1.4414206642066420e-05, 1.4575559701492537e-05, 1.4602803738317758e-05, 1.4740566037735849e-05, 1.4768431001890360e-05, 1.4937858508604206e-05, 1.4966475095785440e-05, 1.5082046332046332e-05, 1.5101481958762887e-05, 1.5140503875968992e-05, 1.5199416342412452e-05, 1.5229044834307991e-05, 1.5243902439024390e-05, 1.5252169197396964e-05, 1.5258789062500000e-05, 1.5983019639934535e-05, 1.6344142259414225e-05, 1.6983695652173913e-05, 1.7227122381477398e-05, 1.7828617069831128e-05, 1.8310546874999999e-05, 1.8513033175355452e-05, 1.8601190476190478e-05, 1.8962378640776697e-05, 1.8985419198055891e-05, 1.9054878048780488e-05, 1.9211065573770493e-05, 1.9287742254042711e-05, 1.9862288135593219e-05, 1.9929846938775509e-05, 2.0204741379310345e-05, 2.0239637305699483e-05, 2.0292207792207792e-05, 2.0345052083333332e-05, 2.0518713066316479e-05, 2.0851868327402136e-05, 2.0889037433155079e-05, 2.1080047968820266e-05, 2.1216807483403742e-05, 2.1229619565217391e-05, 2.1462912087912090e-05, 2.1485800078576641e-05, 2.1581491712707181e-05, 2.1701388888888890e-05, 2.1883753501400560e-05, 2.2069209039548023e-05, 2.2406787762906311e-05, 2.2910557184750733e-05, 2.3390718562874253e-05, 2.3442074063231849e-05, 2.3612910189982730e-05, 2.3674242424242424e-05, 2.4172339108910892e-05, 2.4187306501547989e-05, 2.4262422360248446e-05, 2.4841017488076313e-05, 2.4930569597856583e-05, 2.5164147670961347e-05, 2.5234173126614986e-05, 2.5406504065040650e-05, 2.5431315104166668e-05, 2.5656814449917897e-05, 2.5783828382838284e-05, 2.6128762541806020e-05, 2.6150627615062760e-05, 2.6152086587815219e-05, 2.6259729920981249e-05, 2.6304713804713804e-05, 2.6367760712189394e-05, 2.6503783924843425e-05, 2.6573129251700679e-05, 2.6598978599221790e-05, 2.6702880859375000e-05, 2.6939655172413793e-05, 2.7126736111111110e-05, 2.7170278223649010e-05, 2.7316433566433566e-05, 2.7337882356957531e-05, 2.7422971918876756e-05, 2.7508802816901409e-05, 2.7606007067137809e-05, 2.8026905829596413e-05, 2.8081252364737043e-05, 2.8617216117216117e-05, 2.8638029849009396e-05, 2.8722426470588235e-05, 2.8828413284132840e-05, 2.8935185185185186e-05, 2.9370300751879698e-05, 2.9444095477386933e-05, 2.9592803030303031e-05, 2.9612031622265540e-05, 2.9818702290076335e-05, 2.9932950191570880e-05, 3.0048076923076925e-05, 3.0222437137330755e-05, 3.0281007751937984e-05, 3.0359455958549222e-05, 3.0398832684824903e-05, 3.0458089668615983e-05, 3.0517578125000000e-05, 3.0648886357884077e-05, 3.1375502008032126e-05, 3.1795058139534883e-05, 3.2123766447368419e-05, 3.2246044485209816e-05, 3.2390132669983418e-05, 3.2740340290000837e-05, 3.2825630252100839e-05, 3.3234579155271952e-05, 3.3434379457917262e-05, 3.3967391304347826e-05, 3.4722222222222222e-05, 3.4877232142857141e-05, 3.5128147482014387e-05, 3.5350678733031677e-05, 3.5903033088235295e-05, 3.6168981481481479e-05, 3.6393633540372672e-05, 3.6536643870977989e-05, 3.6588610963278337e-05, 3.6621093749999999e-05, 3.6851415094339621e-05, 3.7001014884979703e-05, 3.7202380952380956e-05, 3.7802419354838711e-05, 3.8146972656250000e-05, 3.8202933985330073e-05, 3.8675742574257426e-05, 3.8694898464586427e-05, 3.8840553977272727e-05, 3.9062500000000001e-05, 3.9543904049295776e-05, 3.9657360406091367e-05, 3.9884739239710962e-05, 4.0000000000000003e-05, 4.0084658799384299e-05, 4.0236051502145924e-05, 4.0270618556701030e-05, 4.0394006127920335e-05, 4.0584415584415584e-05, 4.0690104166666664e-05, 4.0803847285567162e-05, 4.0955556849953399e-05, 4.0974650349650351e-05, 4.1703736654804272e-05, 4.1978930995475113e-05, 4.2011907374890253e-05, 4.2059219380888291e-05, 4.2459239130434781e-05, 4.2525272161741837e-05, 4.2536297640653356e-05, 4.2769160583941608e-05, 4.3083639705882356e-05, 4.3269797313221775e-05, 4.3402777777777779e-05, 4.3494830328738072e-05, 4.3629002233804916e-05, 4.3890449438202246e-05, 4.4055451127819546e-05, 4.4361198738170348e-05, 4.4557984790874526e-05, 4.4813575525812621e-05, 4.4899425287356321e-05, 4.4914609401420355e-05, 4.5106812933025405e-05, 4.5158959537572252e-05, 4.5173351848479330e-05, 4.5246138996138994e-05, 4.5421511627906976e-05, 4.5598249027237355e-05, 4.5776367187500000e-05, 4.5955882352941176e-05, 4.6089216634429402e-05, 4.6502976190476188e-05, 4.7117317633543941e-05, 4.7492401215805471e-05, 4.7637195121951221e-05, 4.7782874617737003e-05, 4.7831632653061222e-05, 4.8225308641975306e-05, 4.8524844720496891e-05, 4.8625518672199167e-05, 4.8819878398919101e-05, 4.8828125000000003e-05, 4.9186778593913957e-05, 4.9313389739457430e-05, 4.9824617346938777e-05, 5.0080128205128203e-05, 5.0241157556270096e-05, 5.0730519480519484e-05, 5.0862630208333336e-05, 5.1021424020388657e-05, 5.1398026315789471e-05, 5.1524459933950825e-05, 5.1624449339207050e-05, 5.1734282750917504e-05, 5.2083333333333337e-05, 5.2252625328166019e-05, 5.2787162162162165e-05, 5.2889264990328821e-05, 5.3146258503401359e-05, 5.3179146039603960e-05, 5.3405761718750000e-05, 5.3510273972602737e-05, 5.3854549632352940e-05, 5.3874607192737428e-05, 5.3879310344827585e-05, 5.3917777248929083e-05, 5.4103185595567865e-05, 5.4195570971184631e-05, 5.4220887554220887e-05, 5.5011051844400618e-05, 5.5017605633802818e-05, 5.5443548387096778e-05, 5.6003584229390681e-05, 5.6205035971223025e-05, 5.6290291998483123e-05, 5.6508323765786454e-05, 5.7025547445255473e-05, 5.7234432234432234e-05, 5.7444852941176470e-05, 5.7483277591973244e-05, 5.7544410745233971e-05, 5.7701017279821625e-05, 5.7870370370370373e-05, 5.8013613861386136e-05, 5.8302238805970148e-05, 5.8404793315743181e-05, 5.8652402402402402e-05, 5.8740601503759395e-05, 5.8975237805084459e-05, 5.9174398788108316e-05, 5.9185606060606062e-05, 5.9297912713472487e-05, 5.9501142421934501e-05, 5.9637404580152669e-05, 5.9985411547911549e-05, 5.9993600682593855e-05, 6.0038424591738711e-05, 6.0096153846153849e-05, 6.0328185328185330e-05, 6.0374806800618238e-05, 6.0468266253869969e-05, 6.0562015503875968e-05, 6.0797665369649806e-05, 6.0955786736020808e-05, 6.1018429706768978e-05, 6.1035156250000000e-05, 6.1471745350500715e-05, 6.1729614412136529e-05, 6.2003968253968251e-05, 6.2046788674033153e-05, 6.2093569364161846e-05, 6.2223451327433627e-05, 6.2351704055220022e-05, 6.2375249500997999e-05, 6.2600160256410251e-05, 6.2814070351758800e-05, 6.3004032258064514e-05, 6.3516260162601633e-05, 6.3633079348397270e-05, 6.4036885245901643e-05, 6.4744475138121544e-05, 6.5104166666666666e-05, 6.5541107382550336e-05, 6.5651260504201678e-05, 6.6207627118644068e-05, 6.6489361702127661e-05, 6.6773504273504280e-05, 6.7349137931034482e-05, 6.7682549504950501e-05, 6.7800788954635111e-05, 6.7816840277777781e-05, 6.7874556737588656e-05, 6.7934782608695653e-05, 6.8000483558994197e-05, 6.8530701754385961e-05, 6.8597560975609763e-05, 6.8664550781250000e-05, 6.8832599118942738e-05, 6.9213732004429676e-05, 6.9341715976331363e-05, 6.9525341837903899e-05, 6.9754464285714282e-05, 7.0583689966714213e-05, 7.0672286184210529e-05, 7.1022727272727269e-05, 7.1084272097053723e-05, 7.1190939745493961e-05, 7.1440235140431086e-05, 7.1522887323943662e-05, 7.1543040293040296e-05, 7.1797817346352672e-05, 7.1957236842105256e-05, 7.2281939757703155e-05, 7.2337962962962959e-05, 7.2674418604651162e-05, 7.2877798507462680e-05, 7.2909188801148600e-05, 7.3242187499999997e-05, 7.3814247921390782e-05, 7.4052132701421807e-05, 7.4212003454231435e-05, 7.5120192307692312e-05, 7.5752938295788440e-05, 7.5997081712062258e-05, 7.6057788317523720e-05, 7.6293945312500000e-05, 7.6593137254901960e-05, 7.6970443349753695e-05, 7.7351485148514852e-05, 7.7951773835920174e-05, 7.7983212341197822e-05, 7.8125000000000002e-05, 7.8245377503852079e-05, 7.8914141414141421e-05, 7.8975505443234842e-05, 7.9719387755102034e-05, 7.9874634858812074e-05, 8.0055756479807119e-05, 8.0167136332717908e-05, 8.0490945988136116e-05, 8.0541237113402060e-05, 8.0660029498525073e-05, 8.0804086960887690e-05, 8.1380208333333329e-05, 8.1663763066202097e-05, 8.1720711297071126e-05, 8.2360692771084331e-05, 8.2526408450704224e-05, 8.2951254826254823e-05, 8.3111702127659572e-05, 8.3276524541398117e-05, 8.3377801494130205e-05, 8.3407473309608543e-05, 8.3759746588693952e-05, 8.3923339843750000e-05, 8.4005376344086028e-05, 8.4212890186391193e-05, 8.4378970775095304e-05, 8.4803256445047483e-05, 8.5449218749999995e-05, 8.5563303154205603e-05, 8.5746951219512190e-05, 8.5796188630490950e-05, 8.5956601466992668e-05, 8.6150081498236972e-05, 8.6805555555555559e-05, 8.6998886414253897e-05, 8.7453358208955219e-05, 8.8110902255639093e-05, 8.8296790235081374e-05, 8.8778409090909093e-05, 8.9798850574712642e-05, 8.9913682864450130e-05, 9.0144230769230774e-05, 9.0243399339933988e-05, 9.0492277992277988e-05, 9.0843023255813952e-05, 9.1196498054474709e-05, 9.1552734375000000e-05, 9.1714730502245821e-05, 9.2032068062827227e-05, 9.3005952380952376e-05, 9.3255431866952790e-05, 9.3562874251497012e-05, 9.3642979452054789e-05, 9.3750000000000002e-05, 9.3900240384615390e-05, 9.4126506024096390e-05, 9.4361724281549354e-05, 9.4410876132930514e-05, 9.4604492187500003e-05, 9.4615051903114186e-05, 9.4943576388888890e-05, 9.5119724025974031e-05, 9.5274390243902442e-05, 9.6450617283950612e-05, 9.6638997395833329e-05, 9.6849173553719011e-05, 9.7656250000000005e-05, 9.8201815642458105e-05, 9.8892405063291138e-05, 9.9201186511240630e-05, 1.0016025641025641e-04, 1.0052849264705882e-04, 1.0067654639175257e-04, 1.0094275841346153e-04, 1.0099918062636562e-04, 1.0130441494288361e-04, 1.0146103896103897e-04, 1.0159297789336801e-04, 1.0172526041666667e-04, 1.0279605263157894e-04, 1.0329026442307692e-04, 1.0347682119205298e-04, 1.0357481060606061e-04, 1.0370575221238938e-04, 1.0395050048828125e-04, 1.0431054327808472e-04, 1.0434056761268782e-04, 1.0445119321449108e-04, 1.0463169642857142e-04, 1.0476342032675578e-04, 1.0486577181208053e-04, 1.0504855577689243e-04, 1.0553175403225806e-04, 1.0557432432432433e-04, 1.0639591439688716e-04, 1.0653409090909090e-04, 1.0673009065501938e-04, 1.0681152343750000e-04, 1.0751146788990826e-04, 1.0826635254988914e-04, 1.0850694444444444e-04, 1.0854956304006285e-04, 1.0884287925696594e-04, 1.0899135044642858e-04, 1.0952102803738318e-04, 1.1103036175710595e-04, 1.1117117745535714e-04, 1.1160714285714285e-04, 1.1241007194244605e-04, 1.1291128536285363e-04, 1.1299070247933885e-04, 1.1311534749034749e-04, 1.1322463768115942e-04, 1.1340725806451613e-04, 1.1396260086902545e-04, 1.1421783625730994e-04, 1.1446886446886447e-04, 1.1463036117381490e-04, 1.1465443686006827e-04, 1.1467889908256881e-04, 1.1488970588235294e-04, 1.1496834360027379e-04, 1.1501981879954699e-04, 1.1522861356932153e-04, 1.1584756918700541e-04, 1.1584800741427248e-04, 1.1620423340961099e-04, 1.1648856858846918e-04, 1.1718750000000000e-04, 1.1756674757281553e-04, 1.1765813253012048e-04, 1.1837121212121212e-04, 1.2019230769230770e-04, 1.2056327160493826e-04, 1.2069873595505618e-04, 1.2090773809523810e-04, 1.2103873239436620e-04, 1.2112403100775194e-04, 1.2122220935618342e-04, 1.2131211180124223e-04, 1.2138064971751413e-04, 1.2159533073929961e-04, 1.2178487918939984e-04, 1.2191157347204162e-04, 1.2192919075144508e-04, 1.2195121951219512e-04, 1.2207031250000000e-04, 1.2248153666753045e-04, 1.2400793650793650e-04, 1.2446384803921568e-04, 1.2485730593607305e-04, 1.2515809443507589e-04, 1.2581294518426757e-04, 1.2600806451612903e-04, 1.2668918918918920e-04, 1.2695312500000000e-04, 1.2737771739130434e-04, 1.2815780839895013e-04, 1.2821389496717723e-04, 1.2925091911764706e-04, 1.3020833333333333e-04, 1.3049832962138086e-04, 1.3161219676549864e-04, 1.3216635338345864e-04, 1.3241525423728814e-04, 1.3309419450876613e-04, 1.3316761363636363e-04, 1.3328412073490813e-04, 1.3367395437262358e-04, 1.3367884172425139e-04, 1.3426326412918109e-04, 1.3469827586206896e-04, 1.3513789164490861e-04, 1.3521634615384616e-04, 1.3554109783845279e-04, 1.3586956521739131e-04, 1.3626453488372093e-04, 1.3633345978755692e-04, 1.3679474708171206e-04, 1.3715670085172953e-04, 1.3718596095215759e-04, 1.3732910156250000e-04, 1.3848563569682150e-04, 1.3872663551401870e-04, 1.3906547997457090e-04, 1.3919821826280623e-04, 1.3939039932030586e-04, 1.3950892857142856e-04, 1.3997036934950387e-04, 1.4153079710144928e-04, 1.4167746113989636e-04, 1.4204545454545454e-04, 1.4256386861313867e-04, 1.4361213235294118e-04, 1.4385623229461756e-04, 1.4467592592592592e-04, 1.4495849609375000e-04, 1.4527376033057852e-04, 1.4622326203208555e-04, 1.4648437499999999e-04, 1.4678252700798497e-04, 1.4727333931777379e-04, 1.4796401515151516e-04, 1.4833860759493671e-04, 1.4884409851301114e-04, 1.5024038461538462e-04, 1.5080500512470107e-04, 1.5140503875968992e-04, 1.5169902912621358e-04, 1.5211253894080996e-04, 1.5258789062500000e-04, 1.5318627450980392e-04, 1.5340636973180076e-04, 1.5361657303370786e-04, 1.5374453352769680e-04, 1.5419407894736841e-04, 1.5470297029702970e-04, 1.5547263681592040e-04, 1.5625000000000000e-04, 1.5729865771812080e-04, 1.5778940886699509e-04, 1.5833942749686586e-04, 1.5943877551020407e-04, 1.6009221311475409e-04, 1.6053082191780821e-04, 1.6058382862803368e-04, 1.6111637205387205e-04, 1.6141528925619835e-04, 1.6179733727810652e-04, 1.6191709844559586e-04, 1.6276041666666666e-04, 1.6361256544502619e-04, 1.6371223196881091e-04, 1.6428154205607476e-04, 1.6472138554216866e-04, 1.6490513665202538e-04, 1.6498565673828125e-04, 1.6590250965250965e-04, 1.6610153958944280e-04, 1.6649590163934425e-04, 1.6654554263565891e-04, 1.6673018292682928e-04, 1.6698255389112167e-04, 1.6719357976653697e-04, 1.6751949317738790e-04, 1.6784667968750000e-04, 1.6821172248803829e-04, 1.6873650107991360e-04, 1.6887922932330826e-04, 1.6983695652173913e-04, 1.7027243589743589e-04, 1.7034192269573835e-04, 1.7047085845535459e-04, 1.7107664233576643e-04, 1.7197327044025156e-04, 1.7233455882352942e-04, 1.7284292035398230e-04, 1.7298208534621579e-04, 1.7344353281853282e-04, 1.7361111111111112e-04, 1.7396255060728744e-04, 1.7410714285714287e-04, 1.7438616071428572e-04, 1.7482517482517483e-04, 1.7630465444287729e-04, 1.7632378472222222e-04, 1.7705382436260624e-04, 1.7755681818181819e-04, 1.8028846153846155e-04, 1.8084490740740740e-04, 1.8168604651162790e-04, 1.8310546875000000e-04, 1.8454724409448819e-04, 1.8601190476190475e-04, 1.8640466638513513e-04, 1.8690191387559809e-04, 1.8787779774546642e-04, 1.8825301204819278e-04, 1.8847276264591440e-04, 1.8950508607198748e-04, 1.8962378640776699e-04, 1.9054878048780488e-04, 1.9092635402906210e-04, 1.9153225806451614e-04, 1.9182477678571428e-04, 1.9182987430575854e-04, 1.9211065573770491e-04, 1.9290123456790122e-04, 1.9369834710743802e-04, 1.9531250000000001e-04, 1.9695378151260505e-04, 1.9705118694362018e-04, 1.9814311594202900e-04, 1.9836425781250000e-04, 1.9850272232304901e-04, 1.9862288135593222e-04, 2.0014944491887276e-04, 2.0032051282051281e-04, 2.0105698529411764e-04, 2.0152682904907423e-04, 2.0188551682692306e-04, 2.0204741379310345e-04, 2.0278346994535520e-04, 2.0312499999999999e-04, 2.0329925650557621e-04, 2.0345052083333334e-04, 2.0351890756302522e-04, 2.0405783582089552e-04, 2.0424836601307190e-04, 2.0559210526315788e-04, 2.0658052884615384e-04, 2.0714962121212122e-04, 2.0833333333333335e-04, 2.0847963483146067e-04, 2.0926339285714285e-04, 2.0953065134099617e-04, 2.0983608960825710e-04, 2.1001344086021506e-04, 2.1081349206349207e-04, 2.1114864864864866e-04, 2.1155705996131529e-04, 2.1178463855421687e-04, 2.1196705426356589e-04, 2.1219135802469136e-04, 2.1279182879377432e-04, 2.1281854130052725e-04, 2.1340558194774347e-04, 2.1362304687500000e-04, 2.1404109589041095e-04, 2.1526128266033254e-04, 2.1541819852941176e-04, 2.1568251533742331e-04, 2.1570319240724764e-04, 2.1601382488479264e-04, 2.1657636088709677e-04, 2.1701388888888888e-04, 2.1802325581395349e-04, 2.1836180124223603e-04, 2.1904205607476635e-04, 2.2051411290322580e-04, 2.2088913690476191e-04, 2.2110849056603774e-04, 2.2194602272727272e-04, 2.2287912912912912e-04, 2.2321428571428571e-04, 2.2359006734006735e-04, 2.2379557291666666e-04, 2.2482014388489210e-04, 2.2519401330376939e-04, 2.2536057692307694e-04, 2.2563176895306860e-04, 2.2622728301033106e-04, 2.2644927536231884e-04, 2.2719277673545967e-04, 2.2810218978102189e-04, 2.2847877358490566e-04, 2.2865853658536587e-04, 2.2965879265091863e-04, 2.2977941176470588e-04, 2.3057725694444444e-04, 2.3172669491525424e-04, 2.3304332386363637e-04, 2.3320895522388059e-04, 2.3332904222451081e-04, 2.3424325463743676e-04, 2.3437499999999999e-04, 2.3455969267139481e-04, 2.3513349514563107e-04, 2.3531626506024096e-04, 2.3594798657718122e-04, 2.3648648648648648e-04, 2.3674242424242425e-04, 2.3818597560975609e-04, 2.3915816326530612e-04, 2.4038461538461540e-04, 2.4112654320987653e-04, 2.4139747191011235e-04, 2.4224806201550387e-04, 2.4262422360248447e-04, 2.4272940751445085e-04, 2.4319066147859923e-04, 2.4334016393442624e-04, 2.4378628447024674e-04, 2.4390243902439024e-04, 2.4414062500000000e-04, 2.4445163216560510e-04, 2.4634009009009007e-04, 2.4782854984894259e-04, 2.4801587301587300e-04, 2.4837427745664738e-04, 2.4871254681647941e-04, 2.4995349702380950e-04, 2.5000000000000001e-04, 2.5110692030173826e-04, 2.5120578778135047e-04, 2.5153882575757575e-04, 2.5201612903225806e-04, 2.5318287037037036e-04, 2.5395637296834903e-04, 2.5475543478260869e-04, 2.5531045751633988e-04, 2.5592672413793106e-04, 2.5614754098360657e-04, 2.5634765625000001e-04, 2.5689071566731140e-04, 2.5699013157894735e-04, 2.5755494505494506e-04, 2.5763583542713566e-04, 2.5770399305555556e-04, 2.5812224669603524e-04, 2.6041666666666666e-04, 2.6127330043859649e-04, 2.6133362676056336e-04, 2.6311528497409328e-04, 2.6334269662921348e-04, 2.6371308016877635e-04, 2.6404075546719683e-04, 2.6569283646888568e-04, 2.6572107993850884e-04, 2.6682035519125686e-04, 2.6688664596273294e-04, 2.6775514089870525e-04, 2.6939655172413793e-04, 2.7013928776565193e-04, 2.7084938366718026e-04, 2.7126736111111112e-04, 2.7252906976744186e-04, 2.7343750000000003e-04, 2.7358949416342413e-04, 2.7465820312500000e-04, 2.7508802816901410e-04, 2.7736686390532545e-04, 2.7901785714285713e-04, 2.7942518248175180e-04, 2.8044871794871793e-04, 2.8153153153153153e-04, 2.8189432989690719e-04, 2.8306159420289856e-04, 2.8483072916666668e-04, 2.8512773722627735e-04, 2.8544169169169171e-04, 2.8545673076923079e-04, 2.8582317073170730e-04, 2.8604750412055568e-04, 2.8658293460925041e-04, 2.8782894736842103e-04, 2.8935185185185184e-04, 2.8991699218750000e-04, 2.9002320185614848e-04, 2.9114906832298137e-04, 2.9253854625550660e-04, 2.9296874999999999e-04, 2.9335474308300394e-04, 2.9347474093264250e-04, 2.9481132075471697e-04, 2.9592803030303031e-04, 2.9654777486910994e-04, 2.9721467391304350e-04, 2.9761904761904765e-04, 2.9877832861189803e-04, 2.9938412408759125e-04, 3.0048076923076925e-04, 3.0158547794117648e-04, 3.0174026946107785e-04, 3.0225428273231126e-04, 3.0250420875420873e-04, 3.0281007751937984e-04, 3.0359455958549222e-04, 3.0438311688311688e-04, 3.0517578125000000e-04, 3.0545653173873048e-04, 3.0553836633663366e-04, 3.0629027926960258e-04, 3.0637254901960784e-04, 3.0699525745257452e-04, 3.0714465725806451e-04, 3.0838815789473682e-04, 3.0989039665970774e-04, 3.1001984126984125e-04, 3.1093381485849058e-04, 3.1176230890287771e-04, 3.1250000000000001e-04, 3.1346450617283949e-04, 3.1530269058295963e-04, 3.1571061643835617e-04, 3.1622023809523811e-04, 3.1635522496371551e-04, 3.1672297297297299e-04, 3.1687062937062936e-04, 3.1795058139534886e-04, 3.1800508808140930e-04, 3.1887755102040814e-04, 3.1918774319066148e-04, 3.1975940265486727e-04, 3.2027049731182794e-04, 3.2106164383561642e-04, 3.2216494845360824e-04, 3.2307330827067667e-04, 3.2552083333333332e-04, 3.2695484581497797e-04, 3.2912971175166298e-04, 3.2958984375000002e-04, 3.2964135021097045e-04, 3.3057122708039490e-04, 3.3190359477124184e-04, 3.3323459715639813e-04, 3.3327132936507937e-04, 3.3346036585365856e-04, 3.3471969006381038e-04, 3.3482142857142857e-04, 3.3569335937500000e-04, 3.3657625786163520e-04, 3.3674568965517244e-04, 3.3757716049382714e-04, 3.3760580635580634e-04, 3.3858346709470302e-04, 3.3967391304347825e-04, 3.3976236979166665e-04, 3.4179687499999998e-04, 3.4265350877192981e-04, 3.4386003521126758e-04, 3.4466911764705885e-04, 3.4516433189655171e-04, 3.4722222222222224e-04, 3.4767670157068062e-04, 3.4877232142857144e-04, 3.4901202749140894e-04, 3.4950107152424323e-04, 3.5056089743589744e-04, 3.5191441441441440e-04, 3.5220286885245903e-04, 3.5334003884572698e-04, 3.5511363636363637e-04, 3.5603841145833332e-04, 3.5682091346153844e-04, 3.5978618421052630e-04, 3.6057692307692310e-04, 3.6168981481481479e-04, 3.6188692098092641e-04, 3.6404939422180800e-04, 3.6458333333333335e-04, 3.6621093750000000e-04, 3.6653820375335118e-04, 3.7173361934477378e-04, 3.7202380952380950e-04, 3.7279564315352695e-04, 3.7286931818181820e-04, 3.7299705689993460e-04, 3.7416187739463603e-04, 3.7457191780821916e-04, 3.7466117597998334e-04, 3.7560096153846156e-04, 3.7802419354838709e-04, 3.7878787878787879e-04, 3.7977430555555556e-04, 3.7998540856031129e-04, 3.8083217270194986e-04, 3.8422131147540983e-04, 3.8512323943661969e-04, 3.8580246913580245e-04, 3.8675742574257428e-04, 3.8748324396782841e-04, 3.9062500000000002e-04, 3.9177728613569321e-04, 3.9390756302521009e-04, 3.9410237388724036e-04, 3.9634338717819284e-04, 3.9635544009779949e-04, 3.9642636138613864e-04, 3.9649906015037592e-04, 3.9672851562500000e-04, 3.9724576271186443e-04, 3.9859693877551021e-04, 3.9881993006993005e-04, 3.9950284090909093e-04, 4.0211397058823527e-04, 4.0229241338112306e-04, 4.0364583333333333e-04, 4.0409482758620689e-04, 4.0447291818276329e-04, 4.0496760259179265e-04, 4.0667808219178083e-04, 4.0690104166666668e-04, 4.0811567164179103e-04, 4.0884067357512953e-04, 4.1040348101265825e-04, 4.1060014204545456e-04, 4.1118421052631577e-04, 4.1198730468750000e-04, 4.1316105769230769e-04, 4.1360294117647058e-04, 4.1429924242424244e-04, 4.1485549812030076e-04, 4.1631235827664398e-04, 4.1671183868169994e-04, 4.1746183206106869e-04, 4.1852678571428569e-04, 4.1964733935742973e-04, 4.2067307692307695e-04, 4.2137390670553938e-04, 4.2229729729729732e-04, 4.2255108173076925e-04, 4.2356927710843374e-04, 4.2410714285714285e-04, 4.2459239130434781e-04, 4.2613636363636362e-04, 4.2638644366197181e-04, 4.2703816971198516e-04, 4.2724609375000000e-04, 4.2777377521613835e-04, 4.2808219178082189e-04, 4.2873475609756098e-04, 4.2999834217506629e-04, 4.3034957627118643e-04, 4.3090527577937648e-04, 4.3128943217665613e-04, 4.3231225296442688e-04, 4.3252595155709344e-04, 4.3269230769230771e-04, 4.3402777777777775e-04, 4.3505627962085307e-04, 4.3712797619047621e-04, 4.3776939655172415e-04, 4.3834339488636363e-04, 4.3845663265306122e-04, 4.3945312500000001e-04, 4.4134696458684655e-04, 4.4221698113207548e-04, 4.4450431034482761e-04, 4.4598917322834648e-04, 4.4617738078492054e-04, 4.4642857142857141e-04, 4.4661350455675228e-04, 4.4825819672131149e-04, 4.4847129783693842e-04, 4.5072115384615387e-04, 4.5138888888888887e-04, 4.5289855072463769e-04, 4.5317606209150328e-04, 4.5358535528596189e-04, 4.5380469859300374e-04, 4.5776367187500000e-04, 4.5848508796041782e-04, 4.5933023278949464e-04, 4.5955882352941176e-04, 4.6098602484472050e-04, 4.6386718749999998e-04, 4.6396072796934867e-04, 4.6410891089108909e-04, 4.6448586744639374e-04, 4.6502976190476188e-04, 4.6539306640625000e-04, 4.6551165803108806e-04, 4.6588302752293581e-04, 4.6641791044776119e-04, 4.6793619791666668e-04, 4.6874999999999998e-04, 4.6933930495689653e-04, 4.7165247678018578e-04, 4.7215875589622639e-04, 4.7218406593406594e-04, 4.7302246093750000e-04, 4.7348484848484850e-04, 4.7566881918819189e-04, 4.7681924882629108e-04, 4.7708369527449618e-04, 4.7831632653061223e-04, 4.7914501039501042e-04, 4.7953964194373403e-04, 4.8076923076923080e-04, 4.8120471014492756e-04, 4.8159246575342463e-04, 4.8225308641975306e-04, 4.8437500000000000e-04, 4.8554029671210906e-04, 4.8745784148397978e-04, 4.8828125000000000e-04, 4.9135220125786163e-04, 4.9169580419580424e-04, 4.9286234228405044e-04, 4.9483536073825502e-04, 4.9531700288184440e-04, 4.9845377604166663e-04, 4.9867021276595741e-04, 4.9920127795527154e-04, 4.9973347547974415e-04, 5.0080128205128201e-04, 5.0403225806451612e-04, 5.0437843406593412e-04, 5.0636574074074071e-04, 5.0795097486303574e-04, 5.0951086956521738e-04, 5.1116943359375000e-04, 5.1153273809523812e-04, 5.1185344827586212e-04, 5.1269531250000002e-04, 5.1358565259117088e-04, 5.1416188162544166e-04, 5.1526292335115861e-04, 5.1689508506616252e-04, 5.1700367647058824e-04, 5.1769578313253016e-04, 5.1879882812500000e-04, 5.1994453924914680e-04, 5.2083333333333333e-04, 5.2315848214285713e-04, 5.2417365564874196e-04, 5.2488002742230350e-04, 5.2725205399061035e-04, 5.2787162162162165e-04, 5.2897135416666663e-04, 5.3047839506172837e-04, 5.3183685446009387e-04, 5.3267045454545451e-04, 5.3274972098214281e-04, 5.3370276162790695e-04, 5.3405761718750000e-04, 5.3418803418803424e-04, 5.3615196078431377e-04, 5.3710937500000004e-04, 5.3879310344827585e-04, 5.4022606382978725e-04, 5.4042779126213590e-04, 5.4086538461538465e-04, 5.4146039603960401e-04, 5.4253472222222225e-04, 5.4443545316070071e-04, 5.4462139423076925e-04, 5.4603494623655909e-04, 5.4907128514056225e-04, 5.4931640625000000e-04, 5.4976851851851855e-04, 5.5197010869565213e-04, 5.5239898989898988e-04, 5.5297186932849361e-04, 5.5426520270270268e-04, 5.5578859060402682e-04, 5.5803571428571425e-04, 5.5844067489114655e-04, 5.5870643028846151e-04, 5.6475903614457829e-04, 5.6617015287982930e-04, 5.6872605363984677e-04, 5.6966145833333337e-04, 5.7164634146341460e-04, 5.7436448427212875e-04, 5.7444852941176473e-04, 5.7474772135416663e-04, 5.7592147435897437e-04, 5.7870370370370367e-04, 5.7942246273953160e-04, 5.7944373401534527e-04, 5.8023872679045091e-04, 5.8047421328671325e-04, 5.8178191489361699e-04, 5.8229813664596275e-04, 5.8302238805970144e-04, 5.8372307256235832e-04, 5.8460884353741496e-04, 5.8492024739583337e-04, 5.8593749999999998e-04, 5.8731942806603769e-04, 5.8829066265060246e-04, 5.8861301369863010e-04, 5.8962264150943394e-04, 5.9000651041666663e-04, 5.9027777777777778e-04, 5.9041835357624836e-04, 5.9185606060606062e-04, 5.9442934782608699e-04, 5.9876824817518251e-04, 5.9925426136363637e-04, 6.0096153846153849e-04, 6.1035156250000000e-04, 6.1677631578947365e-04, 6.1728395061728394e-04, 6.2013167655786355e-04, 6.2089330413016275e-04, 6.2144886363636363e-04, 6.2500000000000001e-04, 6.2647405660377355e-04, 6.2742875647668389e-04, 6.2779017857142862e-04, 6.2957875457875462e-04, 6.3004032258064514e-04, 6.3131313131313137e-04, 6.3344594594594598e-04, 6.3364591084353651e-04, 6.3397807459677417e-04, 6.3454061059907830e-04, 6.3476562500000002e-04, 6.3590116279069772e-04, 6.3694267515923564e-04, 6.3775510204081628e-04, 6.4212328767123284e-04, 6.4236111111111113e-04, 6.4338235294117646e-04, 6.4704754601226989e-04, 6.4869133574007220e-04, 6.5104166666666663e-04, 6.5508540372670812e-04, 6.5748762376237628e-04, 6.5835674157303369e-04, 6.5907921810699592e-04, 6.6047705314009662e-04, 6.6266741071428575e-04, 6.6489361702127658e-04, 6.6604262672811064e-04, 6.6692073170731712e-04, 6.6728646833013434e-04, 6.6817434210526318e-04, 6.6964285714285715e-04, 6.7030325443786978e-04, 6.7047574626865670e-04, 6.7077020202020200e-04, 6.7138671875000000e-04, 6.7238729508196720e-04, 6.7761479591836734e-04, 6.7934782608695650e-04, 6.8063446969696974e-04, 6.8359374999999996e-04, 6.8404377880184328e-04, 6.8597560975609752e-04, 6.8664550781250000e-04, 6.8895463026612984e-04, 6.8933823529411769e-04, 6.9173177083333337e-04, 6.9304435483870971e-04, 6.9419957686882934e-04, 6.9754464285714287e-04, 7.0112179487179487e-04, 7.0180084745762711e-04, 7.0190429687500000e-04, 7.0312499999999997e-04, 7.0488721804511274e-04, 7.0497411242603553e-04, 7.0716594827586207e-04, 7.1004125196437928e-04, 7.1022727272727275e-04, 7.1614583333333328e-04, 7.1716308593750000e-04, 7.1747448979591840e-04, 7.1957236842105259e-04, 7.2115384615384619e-04, 7.2274229074889866e-04, 7.2318412162162161e-04, 7.2337962962962959e-04, 7.2433774834437087e-04, 7.2674418604651162e-04, 7.2828389830508476e-04, 7.3242187500000000e-04, 7.3529411764705881e-04, 7.3902027027027031e-04, 7.4024132562277580e-04, 7.4084051724137927e-04, 7.4188468992248064e-04, 7.4404761904761901e-04, 7.4678308823529407e-04, 7.4790945790080738e-04, 7.4800531914893617e-04, 7.5334821428571432e-04, 7.5604838709677417e-04, 7.5715859030837007e-04, 7.6514175257731958e-04, 7.6541385135135134e-04, 7.6611682808716704e-04, 7.6664719626168222e-04, 7.6958955223880600e-04, 7.7024647887323939e-04, 7.7075461796809403e-04, 7.7160493827160490e-04, 7.7266483516483513e-04, 7.7311197916666663e-04, 7.7636718750000004e-04, 7.7836715867158669e-04, 7.8125000000000004e-04, 7.9146241830065360e-04, 7.9345703125000000e-04, 7.9449152542372887e-04, 7.9611073369565213e-04, 7.9719387755102043e-04, 8.0128205128205125e-04, 8.0422794117647055e-04, 8.0472103004291845e-04, 8.1073113207547173e-04, 8.1380208333333337e-04, 8.1676136363636358e-04, 8.1758720930232562e-04, 8.2017348754448395e-04, 8.2236842105263153e-04, 8.2410337552742618e-04, 8.2473070017953325e-04, 8.2571138211382118e-04, 8.2859848484848487e-04, 8.3007812499999998e-04, 8.3705357142857138e-04, 8.4134615384615389e-04, 8.4252450980392161e-04, 8.4307553956834529e-04, 8.4502551020408168e-04, 8.5449218750000000e-04, 8.5538321167883216e-04, 8.6167279411764703e-04, 8.6495535714285711e-04, 8.6805555555555551e-04, 8.7193080357142862e-04, 8.7344720496894412e-04, 8.7483723958333337e-04, 8.7890625000000002e-04, 8.8637862796833776e-04, 8.8778409090909088e-04, 8.8842509025270763e-04, 9.0144230769230774e-04, 9.0535481770833337e-04, 9.0751262626262625e-04, 9.0843023255813952e-04, 9.1145833333333335e-04, 9.1340174129353230e-04, 9.1422872340425534e-04, 9.1552734375000000e-04, 9.1788385323446689e-04, 9.1911764705882352e-04, 9.2094960136674254e-04, 9.2230902777777775e-04, 9.2605064655172415e-04, 9.3078613281250000e-04, 9.3587239583333337e-04, 9.3749999999999997e-04, 9.4126506024096385e-04, 9.4154631474103589e-04, 9.4288793103448280e-04, 9.4607379375591296e-04, 9.4696969696969700e-04, 9.5274390243902437e-04, 9.5385174418604647e-04, 9.5813679245283019e-04, 9.6153846153846159e-04, 9.6191406249999999e-04, 9.6792035398230087e-04, 9.7057131901840494e-04, 9.7139550264550259e-04, 9.7656250000000000e-04, 9.7822332057823135e-04, 9.8056480532786880e-04, 9.8167539267015702e-04, 9.8640835044809549e-04, 9.9370576969322203e-04, 9.9981398809523801e-04, 1.0067654639175257e-03, 1.0076582023377670e-03, 1.0080645161290322e-03, 1.0168650793650794e-03, 1.0190217391304348e-03, 1.0237068965517242e-03, 1.0279605263157894e-03, 1.0308159722222222e-03, 1.0340073529411765e-03, 1.0375976562500000e-03, 1.0416666666666667e-03, 1.0422926682692308e-03, 1.0434503424657535e-03, 1.0463169642857143e-03, 1.0489004629629631e-03, 1.0519403945111491e-03, 1.0589231927710843e-03, 1.0653409090909090e-03, 1.0661553899082568e-03, 1.0784125766871166e-03, 1.0850694444444445e-03, 1.0901162790697674e-03, 1.0986328125000000e-03, 1.1003521126760564e-03, 1.1118685658897455e-03, 1.1150758251561106e-03, 1.1160714285714285e-03, 1.1211560364464692e-03, 1.1231351717902352e-03, 1.1239681603773585e-03, 1.1245425589590675e-03, 1.1307565789473685e-03, 1.1393229166666667e-03, 1.1488970588235295e-03, 1.1541193181818182e-03, 1.1574074074074073e-03, 1.1596679687500000e-03, 1.1683872767857143e-03, 1.1718750000000000e-03, 1.1798469387755103e-03, 1.1837121212121212e-03, 1.1870941558441558e-03, 1.2207031250000000e-03, 1.2269482450922070e-03, 1.2294224330357143e-03, 1.2428977272727273e-03, 1.2473739495798318e-03, 1.2483891752577319e-03, 1.2538580246913580e-03, 1.2620192307692308e-03, 1.2637867647058824e-03, 1.2686965811965812e-03, 1.2767509727626459e-03, 1.2785921391752577e-03, 1.2817382812500000e-03, 1.2849506578947369e-03, 1.2927250081672657e-03, 1.3020833333333333e-03, 1.3212316176470589e-03, 1.3369972397476340e-03, 1.3406318530701754e-03, 1.3427734375000000e-03, 1.3521634615384615e-03, 1.3586956521739130e-03, 1.3671874999999999e-03, 1.3874658469945355e-03, 1.3903601694915254e-03, 1.3911839035769828e-03, 1.3916015625000000e-03, 1.3929263565891474e-03, 1.3957864817591204e-03, 1.4062499999999999e-03, 1.4105902777777778e-03, 1.4204545454545455e-03, 1.4241536458333333e-03, 1.4343261718750000e-03, 1.4391447368421052e-03, 1.4467592592592592e-03, 1.4508928571428572e-03, 1.4540728400735295e-03, 1.4648437500000000e-03, 1.4740566037735850e-03, 1.4780405405405406e-03, 1.4816810344827585e-03, 1.4880952380952380e-03, 1.4922752808988764e-03, 1.4935661764705881e-03, 1.4960106382978723e-03, 1.5024038461538462e-03, 1.5031127129750983e-03, 1.5055338541666667e-03, 1.5061901461693547e-03, 1.5071358267716535e-03, 1.5120967741935483e-03, 1.5190972222222222e-03, 1.5345982142857143e-03, 1.5388257575757575e-03, 1.5625000000000001e-03, 1.5762061403508771e-03, 1.5791223404255318e-03, 1.5869140625000000e-03, 1.5900388166177088e-03, 1.5940946691176470e-03, 1.5943877551020409e-03, 1.6017104640151515e-03, 1.6021728515625000e-03, 1.6040435745937962e-03, 1.6084558823529411e-03, 1.6134510869565217e-03, 1.6174316406250000e-03, 1.6209608843537416e-03, 1.6276041666666667e-03, 1.6364020270270270e-03, 1.6601562500000000e-03, 1.6701438210227273e-03, 1.6741071428571428e-03, 1.6818576388888890e-03, 1.6937255859375000e-03, 1.6951650943396227e-03, 1.6983695652173913e-03, 1.6999421296296296e-03, 1.7089843750000000e-03, 1.7149390243902439e-03, 1.7187500000000000e-03, 1.7294847328244275e-03, 1.7337901069518716e-03, 1.7361111111111110e-03, 1.7430950745682889e-03, 1.7578125000000000e-03, 1.7700195312500000e-03, 1.7734743514150944e-03, 1.7755681818181818e-03, 1.7768012152777778e-03, 1.7787388392857143e-03, 1.7884036144578312e-03, 1.7903645833333333e-03, 1.7995084269662922e-03, 1.8028846153846155e-03, 1.8136160714285715e-03, 1.8155410312273058e-03, 1.8310546875000000e-03, 1.8446180555555555e-03, 1.8717447916666667e-03, 1.8807870370370369e-03, 1.8819173177083333e-03, 1.8920898437500000e-03, 1.9087357954545455e-03, 1.9455252918287938e-03, 1.9531250000000000e-03, 1.9647507440476190e-03, 1.9734768907563025e-03, 1.9781650641025640e-03, 1.9965277777777776e-03, 2.0123106060606060e-03, 2.0305860481586403e-03, 2.0680147058823530e-03, 2.0751953125000000e-03, 2.0833333333333333e-03, 2.1033653846153845e-03, 2.1057128906250000e-03, 2.1093750000000001e-03, 2.1158854166666665e-03, 2.1306818181818180e-03, 2.1329710584274035e-03, 2.1484375000000002e-03, 2.1692961165048542e-03, 2.1701388888888890e-03, 2.1837022569444445e-03, 2.1972656250000000e-03, 2.2214156988386064e-03, 2.2277832031250000e-03, 2.2321428571428570e-03, 2.2379557291666665e-03, 2.2460937499999998e-03, 2.2609544836956520e-03, 2.2786458333333335e-03, 2.3071289062499998e-03, 2.3164970930232560e-03, 2.3282284768211922e-03, 2.3437499999999999e-03, 2.3915816326530613e-03, 2.4038461538461540e-03, 2.4287782866379312e-03, 2.4414062500000000e-03, 2.4496822033898305e-03, 2.4820963541666665e-03, 2.5414156626506024e-03, 2.5634765625000000e-03, 2.6041666666666665e-03, 2.6761568509615385e-03, 2.6855468750000000e-03, 2.7008056640625000e-03, 2.7270047169811319e-03, 2.7343749999999998e-03, 2.7465820312500000e-03, 2.7573529411764708e-03, 2.7901785714285715e-03, 2.8076171875000000e-03, 2.8373099662162161e-03, 2.8483072916666665e-03, 2.8645833333333331e-03, 2.8673537234042553e-03, 2.9296875000000000e-03, 2.9871323529411763e-03, 3.0129602713178296e-03, 3.0184659090909090e-03, 3.0381944444444445e-03, 3.0980603448275863e-03, 3.1020220588235292e-03, 3.1250000000000002e-03, 3.1658496732026144e-03, 3.1738281250000000e-03, 3.2437922720440883e-03, 3.2958984375000000e-03, 3.3714657738095240e-03, 3.4060594512195122e-03, 3.4179687500000000e-03, 3.4265350877192981e-03, 3.4722222222222220e-03, 3.5400390625000000e-03, 3.6315917968750000e-03, 3.6621093750000000e-03, 3.6718749999999998e-03, 3.6764705882352941e-03, 3.7364130434782610e-03, 3.7841796875000000e-03, 3.8132440476190475e-03, 3.8461538461538464e-03, 3.9062500000000000e-03, 4.0283203125000000e-03, 4.2613636363636360e-03, 4.2724609375000000e-03, 4.3402777777777780e-03, 4.3945312500000000e-03, 4.4921874999999997e-03, 4.5166015625000000e-03, 4.5783977556109728e-03, 4.6874999999999998e-03, 4.8532196969696970e-03, 4.8564189189189188e-03, 4.8828125000000000e-03, 4.9438476562500000e-03, 5.2083333333333330e-03, 5.2795410156250000e-03, 5.3530092592592596e-03, 5.3588867187499998e-03, 5.4086538461538460e-03, 5.4687499999999997e-03, 5.5088141025641029e-03, 5.8208264802631577e-03, 5.8593750000000000e-03, 5.8768136160714289e-03, 5.9442934782608699e-03, 6.1035156250000000e-03, 6.2500000000000003e-03, 6.3127790178571430e-03, 6.3476562500000000e-03, 6.4062499999999996e-03, 6.5104166666666670e-03, 6.7187499999999999e-03, 6.8359375000000000e-03, 7.0684523809523810e-03, 7.3784722222222220e-03, 7.7311197916666670e-03, 7.8125000000000000e-03, 8.2465277777777780e-03, 8.3007812500000000e-03, 8.5937500000000007e-03, 8.7076822916666661e-03, 9.1145833333333339e-03, 9.1552734375000000e-03, 9.5486111111111119e-03, 9.7656250000000000e-03, 9.8505434782608699e-03, 1.0131835937500000e-02, 1.0312500000000000e-02, 1.1718750000000000e-02, 1.1962890625000000e-02, 1.2207031250000000e-02, 1.3281250000000000e-02, 1.3671875000000000e-02, 1.5380859375000000e-02, 1.5625000000000000e-02, 1.6210937500000001e-02, 1.8554687500000000e-02, 1.9531250000000000e-02, 2.3437500000000000e-02, 2.9296875000000000e-02, 3.1250000000000000e-02, 5.0781250000000000e-02, 6.6406250000000000e-02};

  static final int[] indexes={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,53,54,55,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,76,77,78,79,80,81,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,109,110,111,113,114,118,124,125,126,127,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,226,227,228,229,230,231,232,234,236,237,241,242,250,251,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,290,291,292,293,294,296,298,299,302,303,304,305,307,308,309,310,311,312,313,314,315,316,317,318,319,333,334,335,336,337,338,339,340,341,342,343,345,346,347,348,349,350,353,355,356,358,359,361,362,363,364,365,366,369,371,383,384,385,387,388,389,392,393,394,395,397,399,400,403,404,405,406,408,409,410,411,412,413,414,415,416,417,418,420,421,422,423,425,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,452,453,454,455,457,459,461,462,463,464,465,466,467,468,469,470,471,472,473,476,478,479,480,481,483,484,485,520,521,522,523,524,525,526,527,528,529,530,531,532,533,535,536,538,539,540,541,542,543,544,545,546,547,548,549,550,552,553,555,556,557,558,559,561,562,563,564,565,566,567,568,569,570,571,572,575,576,578,579,581,582,583,584,586,587,589,590,597,601,602,603,604,605,609,610,611,612,619,620,621,622,623,624,625,626,645,646,647,648,649,650,651,652,653,654,656,658,659,660,661,662,663,664,665,666,667,668,671,672,673,674,675,677,679,680,682,683,684,686,689,699,700,701,705,706,707,708,709,710,711,712,713,714,715,716,717,718,721,722,723,729,730,731,732,735,737,738,739,740,741,742,743,744,752,753,754,755,756,757,758,759,760,761,762,763,764,765,768,770,771,772,779,780,781,792,793,794,795,796,797,798,803,804,805,806,807,808,809,810,811,812,813,814,815,824,825,826,827,828,829,830,831,833,834,835,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,999,1000,1002,1003,1004,1005,1006,1008,1009,1010,1012,1013,1014,1015,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1031,1032,1033,1034,1037,1038,1039,1040,1041,1042,1044,1045,1046,1047,1048,1049,1058,1059,1060,1061,1063,1064,1065,1067,1071,1072,1073,1074,1077,1078,1079,1081,1082,1083,1090,1091,1093,1094,1095,1105,1106,1107,1108,1109,1111,1112,1113,1118,1119,1120,1121,1123,1124,1125,1126,1127,1128,1129,1130,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1164,1165,1166,1167,1176,1177,1178,1179,1180,1181,1182,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1205,1206,1208,1214,1230,1231,1244,1245,1246,1247,1248,1249,1250,1251,1255,1256,1257,1258,1259,1260,1263,1264,1279,1281,1282,1283,1286,1287,1288,1289,1291,1293,1294,1295,1296,1297,1298,1299,1305,1306,1307,1308,1318,1319,1320,1321,1322,1323,1324,1325,1327,1328,1330,1331,1332,1333,1334,1335,1336,1337,1342,1343,1344,1345,1346,1347,1348,1349,1364,1365,1366,1367,1368,1369,1370,1371,1372,1377,1378,1379,1380,1381,1383,1384,1385,1387,1388,1390,1391,1392,1393,1414,1415,1416,1417,1420,1421,1422,1423,1424,1425,1428,1429,1430,1445,1446,1451,1454,1456,1457,1459,1460,1461,1463,1464,1465,1466,1608,1609,1612,1613,1615,1616,1617,1618,1619,1620,1621,1622,1626,1627,1628,1629,1630,1631,1632,1633,1634,1636,1637,1638,1639,1640,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1669,1670,1671,1672,1674,1676,1677,1680,1682,1683,1702,1703,1704,1705,1706,1707,1708,1710,1711,1712,1714,1715,1716,1717,1721,1722,1723,1724,1725,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1755,1756,1757,1758,1759,1760,1761,1762,1770,1771,1772,1773,1774,1775,1776,1779,1780,1781,1782,1783,1786,1787,1788,1789,1790,1791,1794,1795,1796,1797,1801,1802,1803,1804,1805,1807,1808,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1856,1858,1859,1860,1863,1864,1865,1872,1873,1874,1875,1876,1881,1882,1886,1887,1889,1890,1891,1892,1893,1894,1895,1914,1915,1916,1917,1919,1920,1921,1922,1923,1990,1991,1992,2001,2002,2003,2004,2005,2006,2007,2009,2011,2012,2014,2015,2016,2018,2019,2020,2021,2022,2049,2050,2051,2052,2053,2054,2055,2056,2058,2059,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2079,2081,2082,2083,2084,2089,2090,2092,2093,2095,2096,2097,2098,2099,2103,2104,2105,2106,2109,2110,2111,2112,2113,2114,2115,2116,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2183,2184,2185,2186,2191,2192,2193,2194,2195,2196,2197,2198,2199,2209,2210,2212,2213,2214,2215,2218,2219,2221,2222,2223,2224,2232,2233,2234,2235,2236,2237,2244,2245,2246,2247,2248,2249,2250,2254,2255,2256,2257,2258,2259,2260,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2381,2382,2384,2385,2386,2387,2389,2390,2391,2392,2393,2394,2395,2396,2397,2402,2403,2404,2405,2406,2407,2410,2411,2412,2417,2418,2419,2421,2422,2423,2426,2428,2429,2430,2431,2432,2436,2437,2438,2439,2440,2445,2446,2447,2448,2449,2450,2451,2479,2480,2481,2482,2483,2484,2486,2487,2488,2491,2492,2493,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2536,2560,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2582,2583,2584,2585,2586,2587,2588,2589,2590,2630,2631,2632,2633,2634,2635,2637,2638,2639,2640,2641,2642,2644,2645,2646,2647,2648,2649,2650,2654,2655,2656,2657,2658,2659,2660,2662,2664,2666,2667,2670,2672,2673,2675,2676,2677,2678,2679,2680,2697,2698,2699,2704,2705,2706,2707,2708,2710,2711,2712,2713,2754,2755,2756,2757,2758,2759,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2778,2779,2780,2825,2826,2829,2830,2831,2832,2833,2834,2835,2836,2840,2841,2842,2843,2844,2845,2846,2847,2849,2850,2853,2854,2855,2856,2857,2878,2879,2880,2881,2896,2897,2898,2899,2900,2901,2903,2904,2906,2907,2908,2909,2910,2911,2912,2915,2916,2922,2923,2924,2925,2926,2927,2931,2932,2933,2934,2935,2938,2939,2940,2941,2943,2944,2945,2946,2947,3020,3021,3022,3023,3024,3025,3026,3027,3028,3031,3032,3034,3035,3036,3037,3038,3039,3041,3042,3043,3044,3045,3046,3047,3052,3053,3054,3056,3057,3062,3063,3064,3065,3074,3075,3076,3077,3078,3079,3080,3082,3083,3084,3085,3086,3091,3092,3093,3094,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3124,3125,3126,3171,3172,3173,3174,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3193,3194,3195,3198,3199,3201,3202,3203,3204,3222,3223,3224,3225,3226,3227,3228,3229,3231,3232,3233,3234,3235,3236,3237,3239,3242,3257,3258,3259,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3285,3286,3287,3288,3290,3291,3295,3296,3297,3298,3299,3305,3306,3307,3308,3309,3311,3312,3313,3314,3315,3316,3317,3318,3319,3323,3324,3325,3326,3327,3328,3329,3330,3424,3425,3426,3427,3428,3429,3430,3431,3434,3437,3440,3442,3443,3444,3446,3447,3448,3449,3450,3451,3456,3457,3458,3461,3462,3463,3464,3465,3466,3467,3468,3472,3473,3475,3476,3481,3482,3483,3484,3486,3490,3491,3494,3495,3496,3499,3500,3501,3502,3503,3504,3505,3506,3507,3517,3518,3519,3520,3521,3522,3523,3525,3526,3527,3528,3529,3530,3531,3536,3537,3538,3539,3540,3542,3543,3544,3545,3549,3550,3551,3625,3626,3628,3631,3633,3635,3636,3637,3638,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3650,3651,3652,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3673,3674,3675,3676,3695,3696,3697,3698,3699,3700,3701,3702,3704,3705,3706,3707,3710,3711,3712,3713,3714,3715,3717,3718,3719,3720,3721,3722,3723,3724};

  static int[] lookup;

    //  static final double logMean = 12.22983;
    //  static final double logStdDev = 3.172661;

  static RandomStream rng;
    //  static Normal       theorDistr;


  /**
   * Initialize the lookup table. Must be called before any samples can be 
   * drawn.
   * @param useTheoreticalDistr Set to <b>true</b> to use the approximate 
   *        theoretical distribution instead of the empirical distr.
   * @param _rng A random number stream. As defined in the SSF.Util.Random
   *            package.
   */
  public static void init(boolean useTheoreticalDistr,
			  RandomStream _rng) {
    // set up RNG
    rng = _rng;

    if (!useTheoreticalDistr) {
      // set up empirical distribution lookup table
      lookup = new int[numVals];
      int cnt = 0;
      for (int i=0; i<indexes.length-1; i++) {
	while (cnt < indexes[i+1]) {
	  lookup[cnt++] = i;
	}
      }
      lookup[cnt] = indexes.length-1;
    } else {
      // set up theoretical distribution
      System.err.println("No theoretical distribution implemented for #susceptibles");
      System.exit(1);
    }
  }

  /**
   * Draw a sample from the Susceptible fraction distribution.
   * @returns The fraction of the IP space populated by susceptible hosts.
   */
  public static double nextDouble() {
    if (lookup != null) {
      // use empirical distribution
      return samples[lookup[(int) (Math.floor(rng.nextDouble() * numVals))]];
    } else {
      // use theoretical distribution
      return 0.0;
    }
  }

  /**
   * Deallocate the lookup table to let the memory be reclaimed. 
   * No more samples can be drawn from the distribution.
   */
  public static void discard() {
    lookup = null;
  }

  /**
   * Unit test code.
   *
   */
  public static class TestFixture extends Entity {
    RandomStream rng;
    final String RNG_TYPE = "MersenneTwister";
    final String seed = "DefaultSeed";

    public TestFixture(boolean useTheor) {
      // RNG
      try {
	rng = RandomStream.getStream(this,
				     RNG_TYPE,
				     seed);
      } catch (RandomStream.StreamException rngex) {
	  rngex.printStackTrace();
	  System.exit(-1);
      }

      CR2SuscFracDistr.init(useTheor, rng);
    }

    public void doTest() {
      for (int i=0; i<numVals; i++) {
	System.out.println(CR2SuscFracDistr.nextDouble());
      }
    }
  }

  /**
   * Test code.
   * For normal usage, <i>do not</i> instantiate. Singleton class.
   */
  public CR2SuscFracDistr(boolean useTheor) {
    TestFixture f = new TestFixture(useTheor);
    
    f.doTest(); // prints out a bunch of samples that can be statistically 
		// tested.
  }
  

  /**
   * Simple test code.
   */
  public static void main(String[] argv) {

    boolean useTheor = false;

    if (argv.length > 0) {
      if (argv[0].compareTo("-theor") == 0) {
	useTheor = true;
      }
    }

    // instantiate just so that the test-fixture can be instantiated
    CR2SuscFracDistr isd = new CR2SuscFracDistr(useTheor); 
  }
}
